<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Title</title>
</head>
<body>

</body>
<script>
	{
		// 1- 基本使用
		// const arr = [1, 2, 3, 4];
		// const [d, a, b, c] = arr;
		// console.log(a, b, c, d);// 2 3 4 1
		
		// const [a,b,c,d] = [1,2,3,4];
		// console.log(a,b,c,d);// 1 2 3 4
	}
	{
		// 2- 忽略元素
		// const [a,b] = [1,2,3,4];
		// console.log(a,b);// 1 2
		
		// const [,,c] = [1,2,3,4];
		// console.log(c);// 3
		
		// const [,,c,d] = [1,2,3,4];
		// console.log(c,d);// 3 4
		
		// const [,,c,,d] = [1,2,3,4,5];
		// console.log(c,d);// 3 5
	}
	{
		// 3- 赋值上下文 :对之前定义的变量进行修改（重置）操作。
		// 数组解构也可用于赋值上下文
		// let a = 100;
		// let b = 200;
		// let arr = [1,2,3,4];
		// [a,b] = arr;
		// console.log(a,b);// 1 2
		//
		// const obj = {
		// 	userName:"zhangsan",
		// 	age:12
		// };
		// let userName = "wangwu";
		// let age = 100;
		// ({userName,age} = obj);
		// console.log(userName,age);// zhangsan 12
	}
	{
		// 4- 变量交换
		// let a = 1;
		// let b = 2;
		// // [b,a]=[a,b];
		// // console.log(a,b);// 2 1
		
	}
	{
		// 5- 默认值
		// // const [a,b,c,d,e,f] = [1,2,3,4,5];
		// // console.log(a,b,c,d,e,f);// 1 2 3 4 5 undefined
		//
		// // const [a,b,c,d,e,f=100] = [1,2,3,4,5];
		// // console.log(a,b,c,d,e,f);// 1 2 3 4 5 100
		//
		// // const [a,b,c,d,e,f=100] = [1,2,3,4,5,undefined];
		// // console.log(a,b,c,d,e,f);// 1 2 3 4 5 100
		//
		// const [a,b,c,d,e,f=100] = [1,2,3,4,5,200];
		// console.log(a,b,c,d,e,f);// 1 2 3 4 5 200
	}
	{
		// 6- 嵌套数组解构
		// // const [a,b,c,d,e,f] = [1,2,3,[4,5],6];
		// // console.log(a,b,c,d,e,f);// 1 2 3 [4,5] 6 undefined
		//
		// const [a,b,c,[d,e],f] = [1,2,3,[4,5],6];
		// console.log(a,b,c,d,e,f);// 1 2 3 4 5 6
	}
	{
		// 7- 不定元素
		// const [a,b,...arr] = [1,2,3,4,5];
		// console.log(a,b,arr);// 1 2 [3,4,5]
	}
	{
		// 8- 复制数组
		// const arr = [1,2,3,4];
		// const arr2 = arr;
		// console.log(arr === arr2);// true
		// arr2[0] = 200;
		// console.log(arr);// [200,2,3,4]
		
		// const arr = [1,2,3,4];
		// const arr2 = arr.concat();
		// console.log(arr === arr2);// false
		// arr2[0] = 200;
		// console.log(arr[0])
		
		// const arr = [1,2,3,{age:12}];
		// const arr2 = arr.concat();
		// console.log(arr === arr2);// false
		// console.log(arr[3]===arr2[3]);// true
		// arr2[3].age = 900;
		// console.log(arr[3].age);// 900
		
		const arr = [1,2,3,4];
		const arr2 = [...arr];// 展开：相当于--》 const arr2 = [1,2,3,4]
		console.log(arr2);// [1,2,3,4]
		console.log(arr2 === arr);// false
		
		// const [...my] = arr;
		// console.log(my);// [1,2,3,4]
		// console.log(arr === my);// false
	}
</script>
</html>